/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Dao;

import Beans.ProductoPrecioBean;
import Conexion.Conexion;
import java.sql.ResultSet;
import java.util.Vector;

/**
 *
 * @author acorzo
 */
public class ProductoPrecioDAO {

    // Atributos de la Clase
    public static final String INSERTA_PRECIO_PRODUCTOS="INSERT INTO cat_productos_precios (idProducto,idTipoPrecio,precio,pComision,fechaAlta,idEstado) VALUES ";
    public static final String ACTUALIZA_PRECIO_PRODUCTOS="UPDATE cat_productos_precios SET";
    public static final String GET_EXISTENCIA_PRECIOS_PRODCUTO="SELECT COUNT(*) As noRegistros FROM cat_productos_precios WHERE idProducto=";
    public static final String GET_PRECIOS_PRODUCTO_ID="SELECT "+
                                                            "ctp.nombreTipoPrecio As nTipoPrecio,"+
                                                            "cpp.precio As precio,"+
                                                            "cpp.pComision As comision,"+
                                                            "cpp.idProductoPrecio As idProductoPrecio "+
                                                       "FROM "+
                                                            "cat_productos_precios cpp,"+
                                                            "cat_tipo_precios ctp "+
                                                       "WHERE "+
                                                            "cpp.idTipoPrecio=ctp.idTipoPrecio AND "+
                                                            "cpp.idProducto=";

    // Insertamos los Precios de los Productos
    public Vector insertaDatosProductosPrecio(ProductoPrecioBean productoPrecioBean, Conexion conect){
        // Variables Locales
        Vector resultDatos=new Vector();

        // Insertamos los Precios de los Productos
        try {
            conect.getPreparedStatement().execute(INSERTA_PRECIO_PRODUCTOS+
                    "("+productoPrecioBean.getIdProducto()+
                    ","+productoPrecioBean.getIdTipoPrecio()+
                    ","+productoPrecioBean.getPrecio()+
                    ","+productoPrecioBean.getComision()+
                    ",NOW()"+
                    ",1)");
            resultDatos.add("OK");
        } catch (Exception e) {
            resultDatos.add("ERROR");
            // Mensaje en Consola
            System.out.println("ERROR :"+e);
        }
        // Retornamos el Valor
        return resultDatos;
    }

    // Actualizamos los Precios de los Productos
    public Vector actualizaDatosProductosPrecio(ProductoPrecioBean productoPrecioBean, Conexion conect){
        // Variables Locales
        Vector resultDatos=new Vector();

        // Actualizamos los Precios de los Productos
        try {
            conect.getPreparedStatement().execute(ACTUALIZA_PRECIO_PRODUCTOS+
                    " precio="+productoPrecioBean.getPrecio()+
                    ",pComision="+productoPrecioBean.getComision()+
                    ",fechaModificacion=NOW()"+
                    " WHERE idProducto="+productoPrecioBean.getIdProducto()+" AND idTipoPrecio="+productoPrecioBean.getIdTipoPrecio());
            resultDatos.add("OK");
        } catch (Exception e) {
            resultDatos.add("ERROR");
            // Mensaje en Consola
            System.out.println("ERROR :"+e);
        }
        // Retornamos el Valor
        return resultDatos;
    }

    // Obtenemos Precios del Producto por Id Producto
    public Vector getPreciosProductoId(ProductoPrecioBean productoPrecioBean, Conexion conect){
        // Variables Locales
        Vector resultDatos=new Vector();

        // Obtenemos Precios del Producto por Id Producto
        try {
            ResultSet resultSet=conect.getPreparedStatement().executeQuery(GET_PRECIOS_PRODUCTO_ID+
                    productoPrecioBean.getIdProducto()+" ORDER BY cpp.idTipoPrecio");
            while(resultSet.next()){
                ProductoPrecioBean getDatosProductoPrecio=new ProductoPrecioBean();
                getDatosProductoPrecio.setTipoPrecio(resultSet.getString("nTipoPrecio"));
                getDatosProductoPrecio.setPrecio(resultSet.getString("precio"));
                getDatosProductoPrecio.setComision(resultSet.getString("comision"));
                getDatosProductoPrecio.setIdProductoPrecio(resultSet.getString("idProductoPrecio"));
                resultDatos.add(getDatosProductoPrecio);
            }
        } catch (Exception e) {
            // Mensaje en Consola
            System.out.println("ERROR "+e);
        }
        // Retornamos el Valor
        return resultDatos;
    }

    // Obtenemos si Existen los Precios del Producto
    public Vector getExistenciaPreciosProducto(ProductoPrecioBean productoPrecioBean, Conexion conect){
        // Variables Locales
        Vector resultDatos=new Vector();

        // Obtenemos si Existen los Precios del Producto
        try {
            ResultSet resultSet=conect.getPreparedStatement().executeQuery(GET_EXISTENCIA_PRECIOS_PRODCUTO+productoPrecioBean.getIdProducto());
            while(resultSet.next()){
                ProductoPrecioBean getDatosProductoPrecio=new ProductoPrecioBean();
                getDatosProductoPrecio.setNoRegistros(resultSet.getString("noRegistros"));
                resultDatos.add(getDatosProductoPrecio);
            }
        } catch (Exception e) {
            // Mensaje en Consola
            System.out.println("ERROR :"+e);
        }
        // Retornamos el Valor
        return resultDatos;
    }
}
